﻿using System;
using UnityEngine;

namespace SteeringBehaviors
{
	// Token: 0x02000213 RID: 531
	public abstract class IKinematic
	{
		// Token: 0x17000157 RID: 343
		// (get) Token: 0x06000B33 RID: 2867 RVA: 0x0005E905 File Offset: 0x0005CB05
		// (set) Token: 0x06000B34 RID: 2868 RVA: 0x0005E90D File Offset: 0x0005CB0D
		public Vector3 position
		{
			get
			{
				return this.GetPosition();
			}
			set
			{
				this.SetPosition(value);
			}
		}

		// Token: 0x06000B35 RID: 2869
		protected abstract Vector3 GetPosition();

		// Token: 0x06000B36 RID: 2870 RVA: 0x00002973 File Offset: 0x00000B73
		protected virtual void SetPosition(Vector3 pos)
		{
		}

		// Token: 0x06000B37 RID: 2871 RVA: 0x0005E916 File Offset: 0x0005CB16
		public static implicit operator bool(IKinematic ikinematic)
		{
			return ikinematic != null && ikinematic.ToBool();
		}

		// Token: 0x06000B38 RID: 2872 RVA: 0x00003781 File Offset: 0x00001981
		protected virtual bool ToBool()
		{
			return true;
		}

		// Token: 0x0400104E RID: 4174
		public float rotation;
	}
}
